#pragma once
#include "fuXmlPathGraph.h"
#include "_tixpath/tinyxml.h"

BEGIN_NAMESPACE_CPPX

struct fuXmlPathGraph::pimpl_t
{
    fuXmlPathGraph *    m_owner;
    TiXmlDocument       m_doc;
    TiXmlNode const *   m_doc_root;

    map<string,MasterType_t> m_master;

public:
    pimpl_t(fuXmlPathGraph * owner);

public:
    void             NodeToShape        (int index,const TiXmlNode * root,Shape_ptr shape);
    Shape_ptr        NodeToBaseShape    (int index,const TiXmlNode * root);
    GeomShape_ptr    NodeToGeomShape    (int index,const TiXmlNode * root);
    ForeignShape_ptr NodeToForeignShape (int index,const TiXmlNode * root);

    string NodeToString(const TiXmlNode * node);

    void ParseDocuument(void);
};

END_NAMESPACE_CPPX
